import { setToken, http, clearToken } from '@/utils';

// 获取token的异步action
export const login = (mobile, code) => {
  return async (dispatch) => {
    // 发起异步请求
    const res = await http.post('/authorizations', {
      mobile,
      code,
    });

    // console.log('res', res);

    // dispatch 获取的token，存到redux中
    dispatch({
      type: 'login/token',
      payload: res.data.data.token,
    });

    // 在本地也保存一份，为了后续用户刷新页面后 redux 中的token消失后，重新读取。
    // localStorage.setItem('geek-pc-token', res.data.data.token);
    setToken(res.data.data.token);
  };
};

// 退出登录action

export const logout = () => {
  // action creator
  return (dispatch) => {
    // 1 清本地 token
    clearToken();

    // 2 清redux token
    dispatch({ type: 'login/logout' });

    // 3 清user
    dispatch({ type: 'user/clearInfo' });
  };
};
